package cn.stylefeng.guns.modular.sakana.devopsdohostmachine.pojo.request;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import java.util.Date;

/**
 * 主机表封装类
 *
 * @author sakanayy
 * @date 2023/06/29 15:15
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class DevopsDoHostMachineRequest extends BaseRequest {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = {edit.class, delete.class})
    @ChineseDescription("主键id")
    private Long hostMachineId;

    /**
     * 主机名称
     */
    @NotBlank(message = "主机名称不能为空", groups = {add.class, edit.class})
    @ChineseDescription("主机名称")
    private String hostMachineName;

    /**
     * 主机ip
     */
    @NotBlank(message = "主机ip不能为空", groups = {add.class, edit.class})
    @ChineseDescription("主机ip")
    private String hostMachineIp;

    /**
     * 操作系统
     */
    @NotBlank(message = "操作系统不能为空", groups = {add.class, edit.class})
    @ChineseDescription("操作系统")
    private String operatingSystem;

    /**
     * SSH端口
     */
    @NotBlank(message = "SSH端口不能为空", groups = {add.class, edit.class})
    @ChineseDescription("SSH端口")
    private String sshPort;

    /**
     * 认证方式：1-密码，2-秘钥
     */
    @NotNull(message = "认证方式：1-密码，2-秘钥不能为空", groups = {add.class, edit.class})
    @ChineseDescription("认证方式：1-密码，2-秘钥")
    private Integer authenticationType;

    /**
     * 主机用户名
     */
    @ChineseDescription("主机用户名")
    private String hostMachineUserName;

    /**
     * 主机密码
     */
    @ChineseDescription("主机密码")
    private String hostMachinePassword;

    /**
     * 秘钥密码
     */
    @ChineseDescription("秘钥密码")
    private String hostSecretKeyCipher;

    /**
     * 主机状态：1-在线，2-离线
     */
    @ChineseDescription("主机状态：1-在线，2-离线")
    private Integer hostMachineState;

    /**
     * 是否是公司级主机：Y-是，N-否
     */
    @ChineseDescription("是否是公司级主机：Y-是，N-否")
    private String companyFlag;

}
